package bubble;

public class Bubble03 {
    public static void sort(int[] nums){
        for (int end = nums.length - 1; end > 0; end--) {
            //判断是否本身就有序的标志
            boolean sorted = true;
            //如果last=end，数组完全有序，last则不会变化，就会退回基础版
            int last = 1;
            for(int start = 0; start < end ;start++){
                if(nums[start] > nums[start+1]){
                    int temp = nums[start+1];
                    nums[start+1] = nums[start];
                    nums[start] = temp;
                    last = start + 1;
                    //一旦出现一次交换，则无序
                    sorted = false;
                }
            }
            end = last;
            //如果没有重排，则数组有序
            if(sorted)break;
        }
    }
}
